home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / os20 / wb / arcandmore.lha / Arc.rexx next >
OS/2 REXX Batch file  |  1993-02-16  |  2KB  |  82 lines

  1. /*    Arc.rexx    - Arexx script to uncompress .zoo, .lzh and .lha files! */
  2. /*                  It also compressed dirs and files with LhA            */
  3. /*    Copyright (c) 1992,1993 by Markus Aalto.                            */
  4. /*    V1.0:    23.08.1992                                                    */
  5.  
  6. PARSE ARG DataFileName
  7.  
  8. ADDLIB('rexxsupport.library',0,-30,0)
  9.  
  10. DestinationDir = "RAM:"
  11. LhAName = "NewC:LhA"
  12. LhAExtract = "x"
  13. LhAAdd = "-x -r a"
  14. ZooName = "NewC:Zoo"
  15. ZooExtract "-x//"
  16.  
  17. IF DataFileName ~= "" THEN DO
  18.     IF LEFT(DataFileName,1) = '"' THEN DO
  19.         PARSE VAR DataFileName '"' Name '"'
  20.         DataFileName = Name
  21.         END
  22.     ELSE DO
  23.         Name = DataFileName
  24.         END
  25.  
  26.        Extension = RIGHT(DataFileName,4)
  27.     DataFileName = '"' || DataFileName || '"'
  28.     IF COMPARE(Extension,".zoo") = 0 THEN DO
  29.         ADDRESS COMMAND ZooName ZooExtract DataFileName
  30.         END
  31.     ELSE IF COMPARE(Extension,".lzh") = 0 | COMPARE(Extension,".lha") = 0 THEN DO
  32.         ADDRESS COMMAND LhAName LhAExtract DataFileName DestinationDir
  33.         END
  34.     ELSE DO
  35.         IF COMPARE( LEFT( STATEF(Name) ,3) ,"DIR") = 0 THEN DO
  36.             RealName = get_realname( Name )
  37.  
  38.             ArcCommand = LhAName LhAAdd '"' || DestinationDir || RealName || ".lha" || '"'
  39.             InfoFileName = Name || ".info"
  40.  
  41.             IF EXISTS( InfoFileName ) THEN DO
  42.                 ArcCommand = ArcCommand '"' || InfoFileName || '"'
  43.                 END
  44.  
  45.             ADDRESS COMMAND ArcCommand '"' || Name || "/#?" || '"'
  46.             END
  47.         ELSE DO
  48.             RealName = get_realname( Name )
  49.  
  50.                ArcCommand = LhAName "a" '"' || DestinationDir || RealName || ".lha" || '"'
  51.             InfoFileName = Name || ".info"
  52.  
  53.                IF EXISTS( InfoFileName ) THEN DO
  54.                    ArcCommand = ArcCommand '"' || InfoFileName || '"'
  55.                 END
  56.  
  57.             ADDRESS COMMAND ArcCommand DataFileName
  58.             END
  59.         END
  60.     END
  61.  
  62. EXIT
  63.  
  64. get_realname:
  65.     WholeName = arg(1)
  66.  
  67.     Position = LASTPOS("/",WholeName)
  68.     IF Position = 0 THEN DO
  69.         Position = POS(":",WholeName)
  70.         IF Position = 0 THEN DO
  71.             Realname = WholeName
  72.             END
  73.         ELSE DO
  74.             Realname = RIGHT( WholeName, LENGTH(WholeName) - Position );
  75.             END
  76.         END
  77.     ELSE DO
  78.         Realname = RIGHT( WholeName, LENGTH(WholeName) - Position );
  79.         END
  80.  
  81.     return Realname
  82.